<?php

namespace app\api\validate;

use app\common\validate\BaseValidate;

class Orders extends BaseValidate
{
    /**
     * 验证规则
     */
    protected $rule = [
        'addressBookId' => 'require|integer',
        'amount' => 'require|float',
        'deliveryStatus' => 'require|integer|in:0,1', // 配送状态：1立即送出 0选择具体时间
        'estimatedDeliveryTime' => 'require|dateFormat:Y-m-d H:i:s', // 预计送达时间
        'packAmount' => 'require|integer',
        'payMethod' => 'require|integer',
        'remark' => 'require|length:0,100',
        'tablewareNumber' => 'require|integer',
        'tablewareStatus' => 'require|integer|in:0,1', // 餐具数量状态 1按参量提供 0选具体数量
        'orderNumber' => 'require', // 订单号
        'payMethod' => 'require|integer|in:1,2', // 支付方式 1微信支付 2支付宝支付
        'status' => 'integer|between:1,6', // 订单状态 1待付款 2待接单 3已接单 4派送中 5已完成 6已取消
    ];
    /**
     * 提示消息
     */
    protected $message = [
        'addressBookId.require' => '地址簿id必须',
        'addressBookId.integer' => '地址簿id必须为数字',
        'amount.require' => '总金额必须',
        'amount.float' => '总金额必须为浮点数字',
        'deliveryStatus.require' => '配送状态必须',
        'deliveryStatus.integer' => '配送状态必须为数字',
        'deliveryStatus.in' => '配送状态未知',
        'estimatedDeliveryTime.require' => '预计送达时间必须',
        'estimatedDeliveryTime.dateFormat' => '预计送达时间日期格式错误，应为 Y-m-d H:i:s',
        'packAmount.require' => '打包费必须',
        'packAmount.integer' => '打包费必须为数字',
        'payMethod.require' => '付款方式必须',
        'payMethod.integer' => '付款方式必须为数字',
        'remark.require' => '备注必须',
        'remark.length' => '备注长度必须在0`100之间',
        'tablewareNumber.require' => '餐具数量必须',
        'tablewareNumber.integer' => '餐具数量必须为数字',
        'tablewareStatus.require' => '餐具数量状态必须',
        'tablewareStatus.integer' => '餐具数量状态必须为数字',
        'tablewareStatus.in' => '餐具数量状态未知',
        'orderNumber.require' => '订单号必须',
        'payMethod.require' => '支付方式必须',
        'payMethod.integer' => '支付方式必须为数字',
        'payMethod.in' => '支付方式未知',
        'status.integer' => '订单状必须为数字',
        'status.between' => '订单状态未知',
    ];
    /**
     * 验证场景
     */
    protected $scene = [
        'submit' => [
            'addressBookId',
            'amount',
            'deliveryStatus',
            'estimatedDeliveryTime',
            'packAmount',
            'payMethod',
            'remark',
            'tablewareNumber',
            'tablewareStatus',
        ],
        'payment' => [
            'orderNumber',
            'payMethod',
        ],
        'historyOrders' => ['status'],
    ];
}
